package com.ytf.test.fifth;

/**
 * @author: YTF
 * @date: 2024/9/18 16:54
 * @version: 1.0
 * @description:
 */
public class PassingThis {
    public static void main(String[] args) {
        new Person().eat(new Apple());
        /**
         * Output:
         * Yummy
         * 注意：
         *  这里Apple调用了Peeler.peel方法，使用了this将自身对象引用传递。可以代码复用方便管理
         *  将Peeler看做commonTool（公共工具）多个类都可以使用。
         */
    }
}
class Person{
    void eat(Apple apple){
        Apple peeled = apple.getPeeled();
        System.out.println("Yummy");
    }
}
class Apple{
    Apple getPeeled(){
        return Peeler.peel(this);
    }
}
class Peeler{
    static Apple peel(Apple apple){
        // ... remove peel
        return apple;
    }
}
